package queue

//使用别名方式拓展
// 任何类型：interface{}
// 限定类型不允许是任何类型，而是int

type QueueInterface2 []interface{}

func (q *QueueInterface2) Push(v int) {
	*q = append(*q, v)
}

func (q *QueueInterface2) PopLeft() int {
	head := (*q)[0]
	*q = (*q)[1:]
	return head.(int)
}

func (q *QueueInterface2) Pop() int {
	tail := (*q)[len(*q)-1]
	*q = (*q)[:len(*q)-1]
	return tail.(int)
}

func (q *QueueInterface2) IsEmpty() bool {
	return len(*q) == 0
}
